#pragma once

#include "SGD Wrappers\SGD_Geometry.h"


class Line
{
private:
	SGD::Point point0;
	SGD::Point point1;

public:
	Line();
	Line(SGD::Point p0, SGD::Point p1);
	~Line();

	SGD::Point GetStartPoint();
	SGD::Point GetEndPoint();
	void SetStartPoint(SGD::Point point);
	void SetEndPoint(SGD::Point point);

	/**************************************************/
	// IntersectionPoint
	// - Compares the two lines to see if they intersect
	// - Returns true if there is an intersection
	// - Uses SGD::Point& intersection to return the point of intersection
	// - Returns false if there is no intersection
	bool IntersectionPoint(Line otherLine, SGD::Point& intersection);
	float CrossProduct(SGD::Vector u, SGD::Vector v);
	SGD::Vector Convert(SGD::Point point);
	SGD::Point Convert(SGD::Vector vector);
};

